介紹自己學 JS 的過程跟閱讀過得書籍
講到私房閱讀書籍之類的,大家想到的應該都是 C++ 或 Java 各語言都會有的 "聖經本",
一本書超讚讓大家學會很多東西,一下子就有成為有一年功力的基本入門玩家。
如果要說推薦的話,我個人還是最推薦要看得書是 JavaScript: The Good part (JS 優良部份),但是不是給新手看,是開始寫前端 JS 寫了大概半年一年以後再看。
就新手學習而言,我並不推薦由書籍入門,前端技術變化太快,
而且 JS 有太多東西需要因地制宜,難以有一本書好好去講。
講心法的書(ex. JS:The Good Part 等)雖然不會過時,但沒有實務經驗的容易鴨子聽雷。
如果就新手學習路徑來講,就 JS 需要學習的部份有以下部份:
@Server side 與 client side 分野:
知道哪邊該歸伺服器處理,哪邊可以寫 JS。
@Client side life cycle :
知道瀏覽器執行每一行程式碼的順序,跟知道不同時間點 JS 的環境裡有哪些資源。因為 event 跟程式碼執行時的時間不一樣,常常有人在這一步開始就完全沒辦法搞懂發生什麼事情。
建議一開始純粹用 event 來作練習。
@事件處理跟 UI 操作細節
這一塊因為 UI 操作大多跟 CSS 有關,所以這裡開始就要求你具備基本 CSS 處理能力,
所以很多人學到這裡就卡住,因為 CSS 屬性太多太複雜。
@跨 Request 互動與資料傳輸 (Ajax)
如果前面是概念題,這裡就是應用題,這裡就開始考驗幾個 server side 相關概念的熟悉度,
另一方面也考驗你對於 client side 頁面元素跟資料處理的概念。
============
從學習的開頭而言,從後端寫作一個留言板,並且試著去撰寫一個留言版需要的 html/css/js ,
JS 作為 client 表單的驗證是一個很棒的入門練習題,並且可以有許多變化。
JS 他最大的問題與難處就是在於他很難獨立而存在,大多需要倚賴非常多其他相關知識,
確實而扎實的把 web 的每一個環節一起學起來,運用起 JS 才能更得心應手。
(至於 NodeJS ,那邊需要的則是 server side 的概念,
基本上個人非常不推薦沒有任何 server side 經驗的人去寫 nodejs ,
這會是相對於其他 server side 語言來講就學習上而言更艱辛的路,
但是如果你已經有其他 server side 經驗,nodeJS 則又會是一個有趣的迷人語言。)
其他我讀過得相關書大概可以表列一下:
JS:The good part
Head First with CSS & HTML
Ajax in Action
JS Design Pattern
等等
但是我還是比較鼓勵大家從表單驗證跟網站實作中先累積基礎,盡信書不如無書。
(是說我只是路過,請就不要把我列入評選範圍了,感恩。XDDD)
嗯.........
個人覺得這論點的前提是有人教或有人帶的情況下才能成立
如果是自學的話建議還是買書看比較快,畢竟什麼都不懂的情況下,網站學習有時比較難著手,也不一定能有效學習,網站解釋的你也不一定能懂
還不如去書店翻一翻,挑本自己能看懂作者在講什麼的書比較保險,而且作者有出入門書的大部份比較會由新手能懂的論點去解釋
不然就是看泰大的影片了
話說
JS:The good part
我第一本看這個還真看不太懂
程式碼不知是中文解釋我看不懂
還是程式碼就是這麼短,某些變數或函式看起來就不是那中文所講的結果
還是個人經驗太少看不出邏輯變化
專有名詞太多沒解釋,看到後面很辛苦
不過這篇文章的
從學習的開頭而言,從後端寫作一個留言板,並且試著去撰寫一個留言版需要的 html/css/js ,
JS 作為 client 表單的驗證是一個很棒的入門練習題,並且可以有許多變化。
可以當作新手的一個目標
拜完Tony老師用 CodeIgniter 寫 MVC 架構,自己實作之後深感方便。
現在想要在前端 JQery + Ajax 做個簡單的功能
點擊按鈕丟值到 Controllers
再從 Controllers 丟值回前端。
不知道 Tony 老師能否解惑一下要怎麼在 CodeIgniter 中
寫出 ajax 拿回從controller給的值 ?
假設使用 jQuery ,一樣透過
<pre class="c" name="code">
$.post("/mycontroller/mymethod",{param1:value1,param2:value2},function(data){
});
mycontroller 實作則是
<pre class="c" name="code">
public function mymethod(){
$param1 = $this->input->post("param1");
$param2 = $this->input->post("param2");
//do something here
echo "xxxx";//用 view 也行,看需要。通常 ajax 結果都是直接用 json_encode 扔東西回去的比較多。
}